Sequential Benchmark

Row

About the sequential Benchmark

The sequential benchmark was done in order to compare the response time of REST and GraphQL. The test was done on two types of sample.

The few sample contains :
- 10 users - 84 products - 79 orders

The lotof sample contains :
- 100’000 users - 84 products - 300204 orders

We simulate a user doing n requests where n = {1,10,100,1000,10000} on three functions:
- getUsers (only user-microservice is involved).
- createProduct (only product-microservice is involved).
- userThatBoughtProduct (user, product and order microservices are involved).

Row

Result sample size per category, function and type

category func type 1 10 100 1000 10000
few createProduct GraphQL 50 50 50 50 50
few createProduct REST 50 50 50 50 50
few getUsers GraphQL 50 50 50 50 50
few getUsers REST 50 50 50 50 50
few userThatBoughtProduct GraphQL 50 50 50 50 0
few userThatBoughtProduct REST 50 50 50 50 0
lotof createProduct GraphQL 50 50 50 50 50
lotof createProduct REST 50 50 50 50 50
lotof getUsers GraphQL 5 5 5 5 0
lotof getUsers REST 5 5 5 5 0
lotof userThatBoughtProduct GraphQL 5 0 0 0 0
lotof userThatBoughtProduct REST 5 0 0 0 0

Response time for getUsers and createProduct for each sample size

Row

Response time for getUsers and createProduct for each sample size (boxplot)

Concurrent benchmark (autocannon)

Concurrent benchmark (JMeter)

Row